<?php

namespace App\CustHub\Interfaces;

use App\CustHub\Vo\ChUserServiceVo;

interface ChUserAuthServiceInterface
{
    /**
     * 微信授权登录
     * @param ChUserServiceVo $userServiceVo
     * @return array
     */
    public function login(ChUserServiceVo $userServiceVo): array;

    /**
     * 手机号密码登录
     * @param ChUserServiceVo $userServiceVo
     * @return array
     */
    public function passwordLogin(ChUserServiceVo $userServiceVo): array;

    /**
     * 手机号验证码登录
     * @param ChUserServiceVo $userServiceVo
     * @return array
     */
    public function mobileLogin(ChUserServiceVo $userServiceVo): array;

    /**
     * 检查是否需要邀请码
     * @param string $mobile
     * @return mixed
     */
    public function checkInviteCodeNeed(string $mobile): mixed;

    /**
     * 注册账号
     * @param ChUserServiceVo $userServiceVo
     * @return void
     */
    public function register(ChUserServiceVo $userServiceVo): void;

    /**
     * 退出登录
     * @return void
     */
    public function logout(): void;
}